Skip to content

Skip release branches for same-milestone Skia updates - #4948

Merged
mattleibow merged 3 commits into
mainfrom
mattleibow-merge-skia-update
Sep 3, 2026
Merged

Skip release branches for same-milestone Skia updates#4948
mattleibow merged 3 commits into
mainfrom
mattleibow-merge-skia-update

Conversation

@mattleibow

@mattleibow mattleibow commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Description

Make the merge-skia-update landing helper compare the parent PR's base and head chrome_milestone values before preserving a release line. Previously, every Skia update targeting main derived and offered to create a release branch, including same-milestone bug-fix syncs such as m153 → m153.

Same-milestone updates now exit without checking or creating release refs. Real milestone bumps still derive the previous release/A.B.x line from the base commit, and the push path rechecks the parent head SHA before writing refs. Later merge guidance and post-merge verification now consistently use the resolved parent base branch, so servicing updates do not incorrectly refer to main.

Related issues

N/A.

Required skia PR

None.

Areas affected

  • Managed API (binding/)
  • Native / C API (externals/skia/src/c, include/c)
  • Generated P/Invoke bindings
  • Native dependency or Skia update (libpng, HarfBuzz, FreeType, zlib, milestone bump, …)
  • Views & integrations (MAUI, Uno, WPF, WinUI, Blazor, …)
  • Rendering output / visual behavior
  • Performance
  • Tests
  • Build, packaging, or CI
  • Documentation or samples

Changes

None — automation-only; no public API or observable product behavior changes.

Testing

  • Added a merge-skia-update behavioral eval for same-milestone updates targeting main.
  • Updated the merge-handoff eval to require CI guidance for the resolved parent base branch rather than assuming main.
  • Ran the updated helper against mono/SkiaSharp [skia-sync] Merge upstream chrome/m153 bug fixes #4927 (mainskia-sync/m153); it reported Same-milestone sync: m153 -> m153 and created no refs.
  • Parsed the updated PowerShell script and eval JSON, and audited the skill for remaining hard-coded post-merge main assumptions.

Checklist

  • Tests added or updated (if omitted, explain why above)
  • Changes above lists all public API and behavioral changes (or "None.")
  • New/changed public API? N/A — no public API changes
  • Native change? N/A — no native changes

Compare the parent base and head milestones before preserving a release line so same-milestone updates targeting main do not create spurious release branches. Cover bump, no-op, regression, and version-consistency paths in CI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 57fee16d-a849-4b5c-8fac-e663b4aa907f
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

📦 Try the packages from this PR

Warning

Do not run these scripts without first reviewing the code in this PR.

Step 1 — Download the packages

bash / macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 4948

PowerShell / Windows:

iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 4948"

Step 2 — Add the local NuGet source

dotnet nuget add source ~/.skiasharp/hives/pr-4948/packages --name skiasharp-pr-4948
More options
Option Description
--successful-only / -SuccessfulOnly Only use successful builds
--force / -Force Overwrite previously downloaded packages
--list / -List List available artifacts without downloading
--build-id ID / -BuildId ID Download from a specific build

Or download manually from Azure Pipelines — look for the nuget artifact on the build for this PR.

Remove the source when you're done:

dotnet nuget remove source skiasharp-pr-4948

Keep the fix focused on comparing the parent base and head milestones, and rely on the merge skill eval instead of a separate test harness and workflow expansion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 57fee16d-a849-4b5c-8fac-e663b4aa907f
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

📊 SkiaSharp benchmarks — PR #4948

this PR (full source build) vs 🌙 nightly · Linux · Windows · macOS

Informational only — this never blocks the PR. 🟢 faster / less allocation · 🔴 slower / more allocation; moves under 5% are hidden as noise.

⏱️ Times are raw BenchmarkDotNet means, and the ⭐ PR and baseline legs run on separate CI runners, so microbenchmarks can swing run-to-run — treat small time deltas as noise. Allocations are deterministic and the reliable signal. The interactive perf-dashboard (linked below) applies smoothing for the trend view.

Highlights

⏱️ Time — 🔴 1 slower · 🟢 1 faster

  • 🔴 ColorParseBenchmark.Parse(Iterations: 1000) · macOS · 69.25 µs → 78.62 µs (+14%)
  • 🟢 ColorParseBenchmark.Parse(Iterations: 1000) · Windows · 75.54 µs → 67.22 µs (-11%)
Full per-OS benchmark deltas

Windows

⏱️ Time (vs 🌙 nightly 4.152.0-nightly.26431.1)

Benchmark baseline this PR Δ
ColorParseBenchmark.Parse(Iterations: 1000) 75.54 µs 67.22 µs 🟢 -11%

macOS

⏱️ Time (vs 🌙 nightly 4.152.0-nightly.26431.1)

Benchmark baseline this PR Δ
ColorParseBenchmark.Parse(Iterations: 1000) 69.25 µs 78.62 µs 🔴 +14%

📈 Full interactive perf-dashboard & run details →

Keep post-merge verification and CI guidance tied to the parent PR base branch so servicing updates do not incorrectly refer to main.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 57fee16d-a849-4b5c-8fac-e663b4aa907f
@mattleibow
mattleibow merged commit a04af58 into main Sep 3, 2026
22 of 82 checks passed
@mattleibow
mattleibow deleted the mattleibow-merge-skia-update branch September 3, 2026 04:58
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

📖 Documentation Preview

The documentation for this PR has been deployed and is available at:

🔗 View Staging Site
🔗 View Staging Docs
🔗 View Staging Gallery (Blazor)
🔗 View Staging Gallery (Uno Platform)
🔗 View Staging SkiaFiddle

This preview will be updated automatically when you push new commits to this PR.


This comment is automatically updated by the documentation staging workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant